It could be the case that the last scroll event is received long after any
previous scroll event, in this case the last scroll event discards all "old"
scroll events, and scroll_history_finish() returns FALSE because there's no
time/offset deltas in the scroll history.
This is desired so we don't trigger the deceleration effect if there was no
effective velocity, we still must reset the installed scroll cursor, so take
it out of this if() condition.
priv->scroll_events_overshoot_id = 0;
}
+ if (start_deceleration)
+ uninstall_scroll_cursor (scrolled_window);
+
if (start_deceleration &&
scroll_history_finish (scrolled_window, &vel_x, &vel_y))
- {
- uninstall_scroll_cursor (scrolled_window);
- gtk_scrolled_window_decelerate (scrolled_window, vel_x, vel_y);
- }
+ gtk_scrolled_window_decelerate (scrolled_window, vel_x, vel_y);
else if (_gtk_scrolled_window_get_overshoot (scrolled_window, NULL, NULL))
{
priv->scroll_events_overshoot_id =